Theorem Proving for Product Lines
نویسندگان
چکیده
Mechanized proof assistants are powerful verification tools, but proof developments can still be difficult and timeconsuming. When verifying a family of related programs, the effort can be reduced by proof reuse. In this paper, we show how to engineer proofs for product lines built from feature modules. Each module contains proof fragments which are composed together to build a complete proof of correctness for each product. We consider a product line of programming languages, where each variant includes metatheory proofs verifying the correctness of its syntax and semantic definitions. This approach has been realized in the Coq proof assistant, with the proofs of each feature independently certifiable by Coq. These proofs are composed for each language variant, with Coq mechanically verifying that the composite proofs are correct. As validation, we formalize a core calculus for Java in Coq which can be extended with any combination of casts, interfaces, or generics.
منابع مشابه
Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques
Software product lines are increasingly used to develop safety-critical and missioncritical systems. To reason about the correctness of product lines, researchers have developed special testing techniques and adapted formal verification techniques such as model checking and theorem proving to the requirements of software product lines. Existing research has focused on the strategies to enable e...
متن کاملA short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کاملA A Classification and Survey of Analysis Strategies for Software Product Lines
Software-product-line engineering has gained considerable momentum in the recent years, both in industry and in academia. A software product line is a family of software products that share a common set of features. Software product lines challenge traditional analysis techniques, such as type checking, model checking, and theorem proving, in their quest of ensuring correctness and reliability ...
متن کاملModeling of Infinite Divisible Distributions Using Invariant and Equivariant Functions
Basu’s theorem is one of the most elegant results of classical statistics. Succinctly put, the theorem says: if T is a complete sufficient statistic for a family of probability measures, and V is an ancillary statistic, then T and V are independent. A very novel application of Basu’s theorem appears recently in proving the infinite divisibility of certain statistics. In addition ...
متن کاملProduct-line specification and verification with feature-oriented contracts
Variability is ubiquitous in today’s software development. While techniques to efficiently implement software product lines are used for decades, verification techniques have been a hot research topic in the last years. We give an overview on how existing verification techniques were applied to product lines. Based on our insights, we overcome two shortcomings of previous research on product-li...
متن کاملProduct-Line Verification with Abstract Contracts
Software product lines are used for highly efficient development of software products with a common code base. As they are used increasingly often in safety-critical systems, means of verification have come into focus of research, but efficient verifications of software product lines are still a challenge. To verify a software product lines all its products need to be verified. Different approa...
متن کامل